3.5 [Includes] Sections
These sections are optional.
Summary
Defines the [Includes]
section tag in the DEC files. This section lists the
"standard" include locations, not file names, provided in the package. Each
include <PATH>
entry listed in a section must be unique to the section
(duplicate entries within a section are not permitted).
A path entry listed in an architectural section must not be listed in the common section.
The included path must not end with the <FileSep>
character.
All paths must be relative to the directory that contains the DEC file. Use of
absolute paths, or WORKSPACE
relative paths is prohibited.
It is permissible to use a <MACROVAL>
entry in this section provided the
above rules are followed.
The 'common
' architecture modifier in a section tag must not be combined with
other architecture type modifiers; doing so will result in a build break.
Prototype
<Include> ::= "[Includes" [<com_attribs>] "]" <EOL> <IncEntries>*
<com_attribs> ::= {<Public>} {<Hidden>}
<Public> ::= {".common"} {<attribs>}
<Hidden> ::= {".common.Private"} {<hattribs>}
<attribs> ::= <attrs> ["," <TS> "Includes" <attrs>]*
<attrs> ::= "." <arch>
<hattribs> ::= <hattrs> ["," <TS> "includes" <hattrs>]*
<hattrs> ::= "." <arch> ".Private"
<IncEntries> ::= {<MacroDefinition>} {<HdrFile>}
<HdrFile> ::= <CommentBlock>*
<TS> <PATH>
{<CommentBlock>} {<EOL>}
<CommentBlock> ::= <TS> "##" <TS> <ModuleTypeList> <CmtOrEol>
<CmtOrEol> ::= {<Comment>} {<EOL>}
Parameters
PATH
Path statements listed in this section must be relative to the directory that contains the DEC file. Use of "..", "../" or "./" in the directory path is prohibited.
Restrictions
It is NOT permissible to list an include directory under common and under a
specific architecture. It is permissible to specify include directory entries
under all architectures except "common
" if different include directories are
required for different architectures.
It is NOT permissible to mix section tags without the Private
modifier with
section tags with the Private
modifier. If this condition is detected, the
build tools must terminate with an error message.
For example, [Includes.common, Includes.IA32.Private]
is prohibited.
It is NOT permissible for the same include directory to be listed in section
tags with and without the Private
modifier. If this condition is detected,
the build tools must terminate with an error message.
For example, the following is prohibited because the same directory called
MyPrivateIncludePath
is listed in a tag with and without a Private
modifier.
[Includes]
MyPrivateIncludePath
[Includes.common.Private]
MyPrivateIncludePath
Example
# Include section - list of Include Paths relative to the DEC file that
# are provided by this package.
# Comments are used for Keywords and Module Types.
#
#######################################################################
[Includes.common]
Include # Includes for all processor architectures
[Includes.IA32]
Include/Ia32 # Includes specific to IA32
[Includes.X64]
Include/X64 # Includes specific to X64
[Includes.IPF]
Include/Ipf # Includes specific to IA64
[Includes.EBC]
Include/Ebc # Includes specific to EBC
[Includes.ARM]
Include/Arm # Includes specific to ARM